﻿using System.Collections.Generic;
using System.Linq;
using DynamicChart.Model;
using DynamicChart.Util;

namespace DynamicChart.Repository;

public class DbActuatorModelRepository : IActuatorModelRepository
{
    private readonly AppDbContext _context;

    public DbActuatorModelRepository(AppDbContext context)
    {
        _context = context;
    }

    public IEnumerable<ActuatorModel> GetAll()
    {
        return _context.ActuatorModel.ToList();
    }

    public ActuatorModel GetById(int id)
    {
        return _context.ActuatorModel.Find(id);
    }

    public void Add(ActuatorModel model)
    {
        _context.ActuatorModel.Add(model);
        _context.SaveChanges();
    }

    public void Update(ActuatorModel model)
    {
        _context.ActuatorModel.Update(model);
        _context.SaveChanges();
    }

    public void Delete(int id)
    {
        var model = GetById(id);
        if (model != null)
        {
            _context.ActuatorModel.Remove(model);
            _context.SaveChanges();
        }
    }

    public string GetSeriesConfig(int id)
    {
        ActuatorModel actuatorModel = _context.ActuatorModel.First(t => t.Id == id);
        
        return actuatorModel == null ? null : actuatorModel.Config;
    }
}